home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2002 #11
/
Amiga Plus CD - 2002 - No. 11.iso
/
Tools
/
Development
/
PowerD
/
powerd
/
source
/
lib
/
powerd_lib.lha
/
PowerD
/
Val.ass
< prev
next >
Wrap
Text File
|
2001-05-31
|
4KB
|
263 lines
machine mc68020
fpu 1
*******************************************************************************
* name offset
* sign -4
* num -8
* args
* s 12
* n 8
xdef _Val
_Val
link a5,#-8
move.l d2,-(a7)
clr.l (-8,a5)
move.l #1,(-4,a5)
while0
movea.l (12,a5),a0
move.l (8,a5),d2
move.b (a0,d2.l*1),d1
andi.l #255,d1
moveq #9,d2
cmp.l d2,d1
seq d1
extb.l d1
move.l d1,d0
movea.l (12,a5),a0
move.l (8,a5),d2
move.b (a0,d2.l*1),d1
andi.l #255,d1
moveq #10,d2
cmp.l d2,d1
seq d1
extb.l d1
or.l d1,d0
movea.l (12,a5),a0
move.l (8,a5),d2
move.b (a0,d2.l*1),d1
andi.l #255,d1
moveq #32,d2
cmp.l d2,d1
seq d1
extb.l d1
or.l d1,d0
tst.l d0
beq end0
addq.l #1,(8,a5)
bra while0
end0
if1
movea.l (12,a5),a0
move.l (8,a5),d1
move.b (a0,d1.l*1),d0
andi.l #255,d0
moveq #45,d1
cmp.l d1,d0
bne end1
move.l #-1,(-4,a5)
addq.l #1,(8,a5)
end1
if3
movea.l (12,a5),a0
move.l (8,a5),d1
move.b (a0,d1.l*1),d0
andi.l #255,d0
moveq #37,d1
cmp.l d1,d0
bne elseif3_1
addq.l #1,(8,a5)
while5
movea.l (12,a5),a0
move.l (8,a5),d2
move.b (a0,d2.l*1),d1
andi.l #255,d1
moveq #48,d2
cmp.l d2,d1
seq d1
extb.l d1
move.l d1,d0
movea.l (12,a5),a0
move.l (8,a5),d2
move.b (a0,d2.l*1),d1
andi.l #255,d1
moveq #49,d2
cmp.l d2,d1
seq d1
extb.l d1
or.l d1,d0
tst.l d0
beq end5
move.l (-8,a5),d0
lsl.l #1,d0
move.l d0,(-8,a5)
movea.l (12,a5),a0
move.l (8,a5),d1
move.b (a0,d1.l*1),d0
andi.l #255,d0
moveq #48,d1
sub.l d1,d0
or.l d0,(-8,a5)
addq.l #1,(8,a5)
bra while5
end5
bra end3
elseif3_1
movea.l (12,a5),a0
move.l (8,a5),d1
move.b (a0,d1.l*1),d0
andi.l #255,d0
moveq #36,d1
cmp.l d1,d0
bne elseif3_2
addq.l #1,(8,a5)
while8
movea.l (12,a5),a0
move.l (8,a5),d2
move.b (a0,d2.l*1),d1
andi.l #255,d1
moveq #48,d2
cmp.l d2,d1
sge d1
extb.l d1
move.l d1,d0
movea.l (12,a5),a0
move.l (8,a5),d2
move.b (a0,d2.l*1),d1
andi.l #255,d1
moveq #57,d2
cmp.l d2,d1
sle d1
extb.l d1
and.l d1,d0
tst.l d0
beq elsewhile8_1
move.l (-8,a5),d0
lsl.l #4,d0
move.l d0,(-8,a5)
movea.l (12,a5),a0
move.l (8,a5),d1
move.b (a0,d1.l*1),d0
andi.l #255,d0
moveq #48,d1
sub.l d1,d0
or.l d0,(-8,a5)
bra always8
elsewhile8_1
movea.l (12,a5),a0
move.l (8,a5),d2
move.b (a0,d2.l*1),d1
andi.l #255,d1
moveq #97,d2
cmp.l d2,d1
sge d1
extb.l d1
move.l d1,d0
movea.l (12,a5),a0
move.l (8,a5),d2
move.b (a0,d2.l*1),d1
andi.l #255,d1
moveq #102,d2
cmp.l d2,d1
sle d1
extb.l d1
and.l d1,d0
tst.l d0
beq elsewhile8_2
move.l (-8,a5),d0
lsl.l #4,d0
move.l d0,(-8,a5)
movea.l (12,a5),a0
move.l (8,a5),d1
move.b (a0,d1.l*1),d0
andi.l #255,d0
moveq #97,d1
sub.l d1,d0
moveq #10,d1
add.l d1,d0
or.l d0,(-8,a5)
bra always8
elsewhile8_2
movea.l (12,a5),a0
move.l (8,a5),d2
move.b (a0,d2.l*1),d1
andi.l #255,d1
moveq #65,d2
cmp.l d2,d1
sge d1
extb.l d1
move.l d1,d0
movea.l (12,a5),a0
move.l (8,a5),d2
move.b (a0,d2.l*1),d1
andi.l #255,d1
moveq #70,d2
cmp.l d2,d1
sle d1
extb.l d1
and.l d1,d0
tst.l d0
beq end8
move.l (-8,a5),d0
lsl.l #4,d0
move.l d0,(-8,a5)
movea.l (12,a5),a0
move.l (8,a5),d1
move.b (a0,d1.l*1),d0
andi.l #255,d0
moveq #65,d1
sub.l d1,d0
moveq #10,d1
add.l d1,d0
or.l d0,(-8,a5)
always8
addq.l #1,(8,a5)
bra while8
end8
bra end3
elseif3_2
while14
movea.l (12,a5),a0
move.l (8,a5),d2
move.b (a0,d2.l*1),d1
andi.l #255,d1
moveq #48,d2
cmp.l d2,d1
sge d1
extb.l d1
move.l d1,d0
movea.l (12,a5),a0
move.l (8,a5),d2
move.b (a0,d2.l*1),d1
andi.l #255,d1
moveq #57,d2
cmp.l d2,d1
sle d1
extb.l d1
and.l d1,d0
tst.l d0
beq end14
move.l (-8,a5),d0
muls.l #10,d0
move.l d0,(-8,a5)
movea.l (12,a5),a0
move.l (8,a5),d1
move.b (a0,d1.l*1),d0
andi.l #255,d0
moveq #48,d1
sub.l d1,d0
add.l d0,(-8,a5)
addq.l #1,(8,a5)
bra while14
end14
end3
Valend
move.l (-8,a5),d0
muls.l (-4,a5),d0
move.l (8,a5),d1
Valfinish
move.l (a7)+,d2
unlk a5
rts
section ".tocd",data